#ifndef _DEC_API_H
#define _DEC_API_H

#ifdef __cplusplus
extern "C"{
#endif

//api
typedef enum
{
	DEC_AUDIO_TRACK_LEFT = 0,
	DEC_AUDIO_TRACK_RIGHT,
	DEC_AUDIO_TRACK_STEREO,
}DEC_AUDIO_TRACK_T;

typedef enum{
	DEC_FRAME_RATE_CHANGE = 1,		/*!<Video frame rate change evt */
	DEC_ASPECT_RATIO_CHANGE,		/*!<Video aspect ratio change evt */
	DEC_INIT_DONE
} DEC_STATUS_T;

typedef int (*pfDecCallback) (DEC_STATUS_T eType, unsigned long value1);
typedef void (*pfDecNotifyPlayer)(DEC_STATUS_T eStatus);

extern int DVBDecoderInit();
extern int DVBDecoderDeinit();
extern int DVBDecoderPushData(unsigned char *pu8Data, unsigned int u32Len);
extern int DVBDecoderStart();
extern int DVBDecoderStop();
extern int DVBDecoderAVFreeze();
extern int DVBDecoderGetDeviceInfo(char *ps8DevInfo,unsigned int u32DevInfoSize, char *ps8VerInfo, unsigned int u32VerInfoSize);
extern int DVBDecoderSetWindows(unsigned int u32X, unsigned int u32Y, unsigned int u32Width, unsigned int u32Hight);
extern int DVBDecoderGetWindows(unsigned int* pu32X, unsigned int* pu32Y, unsigned int* pu32Width, unsigned int* pu32Hight);
extern int DVBDecoderSetAudioTrack(DEC_AUDIO_TRACK_T);
extern int DVBDecoderSetParam(unsigned short u16PcrPid, unsigned short u16VidPid, unsigned int VidType, unsigned short u16AudPid, unsigned int AudType);

extern int DVBDecoderLoadSymbol();

extern int DVBDecoderRegisterStartPlayerFun(pfDecNotifyPlayer pfDecNotification);

#ifdef __cplusplus
}
#endif

#endif //_DEC_API_H
